
<html><head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta content="text/javascript" http-equiv="content-script-type">
<title>system.collections.TreeSet</title>
<link rel="stylesheet" type="text/css" href="candydoc/style.css">
<!--[if lt IE 7]><link rel="stylesheet" type="text/css" href="candydoc/ie56hack.css"><![endif]-->
<script language="JavaScript" src="candydoc/util.js" type="text/javascript"></script>
<script language="JavaScript" src="candydoc/tree.js" type="text/javascript"></script>
<script language="JavaScript" src="candydoc/explorer.js" type="text/javascript"></script>
</head><body>
<div id="tabarea"></div><div id="explorerclient"></div>
<div id="content"><script>explorer.initialize("system.collections.TreeSet");</script>
	<table class="content">
		<tr><td id="docbody"><h1>system.collections.TreeSet</h1><!-- Generated by Ddoc from F:\MyWork\phoenix\source\system\collections\TreeSet.d -->
该模块实现了一个有序 Set 。
<br><br>
<b>License:</b><br>
BSD
<br><br>
<b>Authors:</b><br>
Lucifer (786325481@QQ.com)
<br><br>


<script>explorer.outline.incSymbolLevel();</script>
<dl>
<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">class 
<span class="currsymbol">TreeSet</span>
<script>explorer.outline.addDecl('TreeSet');</script>

(T): IEnumerable!(T), ICollection!(T);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>提供一个有序 Set 集合。
<br><br>
<b>Comments:</b><br>
此实现为基本操作（add、remove 和 contains）提供受保证的 log(n) 时间开销。
		红黑树实现。
 
<br><br>


<script>explorer.outline.incSymbolLevel();</script>
<dl>
<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">this(IComparer!(T) comparer = DefaultComparer!(T).getInstance());
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>构造一个新的空 TreeSet，它根据指定比较器进行排序。
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">comparer</td>

               
<td>用来对此 Set 进行排序的比较器。
		默认使用 DefaultComparer(T)。</td></tr>
</table><br>
<b>Comments:</b><br>
插入到该 Set 的所有元素都必须能够由指定比较器进行相互比较。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">this(IEnumerable!(T) collection);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>构造一个包含指定 collection 元素的新 TreeSet，它按照其元素的迭代顺序进行排序。
<br><br>
<b>Comments:</b><br>
插入该 Set 的所有元素都必须能够由默认比较器进行相互比较或者正确实现 opCmp 。
<br><br>
<b>Note:</b><br>
collection 内的元素仅仅保留非重复值。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">bool 
<span class="currsymbol">isEmpty</span>
<script>explorer.outline.addDecl('isEmpty');</script>

();
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>检测 TreeSet 是否为空。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">int 
<span class="currsymbol">count</span>
<script>explorer.outline.addDecl('count');</script>

();
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>返回 TreeSet 的元素数。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">bool 
<span class="currsymbol">isReadOnly</span>
<script>explorer.outline.addDecl('isReadOnly');</script>

();
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>检测 TreeSet 是否只读。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">bool 
<span class="currsymbol">add</span>
<script>explorer.outline.addDecl('add');</script>

(T <span class="funcparam">item</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>将指定的元素添加到此 Set（如果该元素尚未存在于 Set 中）。
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">T <span class="funcparam">item</span></td>

               
<td>要添加到此 Set 的元素。</td></tr>
</table><br>
<b>Returns:</b><br>
<b>true</b>，当成功插入时。
<br><br>
<b>Throws:</b><br>
ArgumentException，当有重复值插入时。
<br><br>
<b>Comments:</b><br>
插入到该 Set 的所有元素都必须能够由指定比较器进行相互比较。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">void 
<span class="currsymbol">clear</span>
<script>explorer.outline.addDecl('clear');</script>

();
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>清空此 TreeSet 。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">bool 
<span class="currsymbol">remove</span>
<script>explorer.outline.addDecl('remove');</script>

(T <span class="funcparam">item</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>将指定的元素从 Set 中移除（如果该元素存在于此 Set 中）。
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">T <span class="funcparam">item</span></td>

               
<td>将从此 Set 中移除的对象（如果存在）。</td></tr>
</table><br>
<b>Returns:</b><br>
如果此 Set 包含指定元素，返回 <b>true</b>。
		如果此 Set 未包含指定元素，则该调用不改变此 Set，并返回 <b>false</b> 。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">bool 
<span class="currsymbol">contains</span>
<script>explorer.outline.addDecl('contains');</script>

(T <span class="funcparam">item</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>检测此 Set 是否包含指定的元素。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">void 
<span class="currsymbol">toArray</span>
<script>explorer.outline.addDecl('toArray');</script>

(T[] <span class="funcparam">array</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>将此 Set 中的元素拷贝进一维数组中。
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">T[] <span class="funcparam">array</span></td>

               
<td>要放入元素的一维数组。</td></tr>
</table><br>
<b>Throws:</b><br>
Error，当 <span class="funcparam">array</span> 为 <b>null</b> 或 <span class="funcparam">array</span> 的长度小于此 Set 的 count 时。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">bool 
<span class="currsymbol">tryGetFirst</span>
<script>explorer.outline.addDecl('tryGetFirst');</script>

(out T <span class="funcparam">item</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>返回此 Set 中当前第一个（最低）元素。
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">T <span class="funcparam">item</span></td>

               
<td>如果此 Set 为空，返回类型初始值；否则返回此 Set 最小值。</td></tr>
</table><br>
<b>Returns:</b><br>
如果此 Set 为空，返回 <b>false</b>；否则，返回 <b>true</b>。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">bool 
<span class="currsymbol">tryGetLast</span>
<script>explorer.outline.addDecl('tryGetLast');</script>

(out T <span class="funcparam">item</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>返回此 Set 中当前最后一个（最高）元素。
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">T <span class="funcparam">item</span></td>

               
<td>如果此 Set 为空，返回类型初始值；否则返回此 Set 最大值。</td></tr>
</table><br>
<b>Returns:</b><br>
如果此 Set 为空，返回 <b>false</b>；否则，返回 <b>true</b>。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">bool 
<span class="currsymbol">removeFirst</span>
<script>explorer.outline.addDecl('removeFirst');</script>

();
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>移除第一个（最低）元素。
<br><br>
<b>Returns:</b><br>
如果此 Set 为空，返回 <b>false</b>;否则返回 <b>true</b>。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">bool 
<span class="currsymbol">removeLast</span>
<script>explorer.outline.addDecl('removeLast');</script>

();
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>移除最后一个（最高）元素。
<br><br>
<b>Returns:</b><br>
如果此 Set 为空，返回 <b>false</b>;否则返回 <b>true</b>。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">IComparer!(T) 
<span class="currsymbol">comparer</span>
<script>explorer.outline.addDecl('comparer');</script>

();
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>返回此 Set 所使用的比较器。
	 
<br><br>

</dd>
</dl>
<script>explorer.outline.decSymbolLevel();</script>


</dd>
</dl>
<script>explorer.outline.decSymbolLevel();</script>


</td></tr>
		<tr><td id="docfooter">
			Page was generated with
			<img src="candydoc/img/candydoc.gif" style="vertical-align:middle; position:relative; top:-1px">
			on Sat Nov 29 22:33:12 2008

		</td></tr>
	</table>
</div>
<script>
	explorer.packageExplorer.addModule("platform.PAL");
	explorer.packageExplorer.addModule("platform.windows.Core");
	explorer.packageExplorer.addModule("platform.linux.Core");
	explorer.packageExplorer.addModule("system.Array");
	explorer.packageExplorer.addModule("system.BitArray");
	explorer.packageExplorer.addModule("system.Environment");
	explorer.packageExplorer.addModule("system.Event");
	explorer.packageExplorer.addModule("system.Exception");
	explorer.packageExplorer.addModule("system.Hash");
	explorer.packageExplorer.addModule("system.IntPtr");
	explorer.packageExplorer.addModule("system.Random");
	explorer.packageExplorer.addModule("system.Traits");
	explorer.packageExplorer.addModule("system.TypeTuple");
	explorer.packageExplorer.addModule("system.math.IEEE");
	explorer.packageExplorer.addModule("system.math.Math");
	explorer.packageExplorer.addModule("system.runtime.c.complex");
	explorer.packageExplorer.addModule("system.runtime.c.config");
	explorer.packageExplorer.addModule("system.runtime.c.ctype");
	explorer.packageExplorer.addModule("system.runtime.c.errno");
	explorer.packageExplorer.addModule("system.runtime.c.fenv");
	explorer.packageExplorer.addModule("system.runtime.c.inttypes");
	explorer.packageExplorer.addModule("system.runtime.c.limits");
	explorer.packageExplorer.addModule("system.runtime.c.locale");
	explorer.packageExplorer.addModule("system.runtime.c.math");
	explorer.packageExplorer.addModule("system.runtime.c.signal");
	explorer.packageExplorer.addModule("system.runtime.c.stdarg");
	explorer.packageExplorer.addModule("system.runtime.c.stddef");
	explorer.packageExplorer.addModule("system.runtime.c.stdint");
	explorer.packageExplorer.addModule("system.runtime.c.stdio");
	explorer.packageExplorer.addModule("system.runtime.c.stdlib");
	explorer.packageExplorer.addModule("system.runtime.c.string");
	explorer.packageExplorer.addModule("system.runtime.c.time");
	explorer.packageExplorer.addModule("system.runtime.c.wctype");
	explorer.packageExplorer.addModule("system.text.UTF");
	explorer.packageExplorer.addModule("system.threading.Atomic");
	explorer.packageExplorer.addModule("system.threading.ThreadUtility");
	explorer.packageExplorer.addModule("system.threading.synchronization.SpinWait");
	explorer.packageExplorer.addModule("system.collections.ArrayList");
	explorer.packageExplorer.addModule("system.collections.Comparer");
	explorer.packageExplorer.addModule("system.collections.Deque");
	explorer.packageExplorer.addModule("system.collections.EqualityComparer");
	explorer.packageExplorer.addModule("system.collections.Exception");
	explorer.packageExplorer.addModule("system.collections.HashMap");
	explorer.packageExplorer.addModule("system.collections.HashSet");
	explorer.packageExplorer.addModule("system.collections.ICollection");
	explorer.packageExplorer.addModule("system.collections.IComparer");
	explorer.packageExplorer.addModule("system.collections.IDeque");
	explorer.packageExplorer.addModule("system.collections.IEnumerable");
	explorer.packageExplorer.addModule("system.collections.IEnumerator");
	explorer.packageExplorer.addModule("system.collections.IEqualityComparer");
	explorer.packageExplorer.addModule("system.collections.IList");
	explorer.packageExplorer.addModule("system.collections.IMap");
	explorer.packageExplorer.addModule("system.collections.IQueue");
	explorer.packageExplorer.addModule("system.collections.LinkedList");
	explorer.packageExplorer.addModule("system.collections.Pair");
	explorer.packageExplorer.addModule("system.collections.PrimeHelper");
	explorer.packageExplorer.addModule("system.collections.PriorityQueue");
	explorer.packageExplorer.addModule("system.collections.Queue");
	explorer.packageExplorer.addModule("system.collections.RBTree");
	explorer.packageExplorer.addModule("system.collections.Stack");
	explorer.packageExplorer.addModule("system.collections.TreeMap");
	explorer.packageExplorer.addModule("system.collections.TreeSet");
	explorer.packageExplorer.addModule("system.collections.objectmodel.ListCollection");
	explorer.packageExplorer.addModule("system.collections.objectmodel.ReadOnlyListCollection");</script>
</body></html>


